Dynamic Partition Pruning In Spark